{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "import"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "read csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_path = '../data/'+'Huawei-East-1.csv'\n",
    "data = pd.read_csv(data_path, header=None,low_memory=False)\n",
    "# df.columns = pd.read_csv(\"{}.header\".format(data_path.split('.csv')[0])).columns\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Analyze the statsical information of the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The number of creation requests is 125430\n",
      "The number of deletion requests is 116313\n",
      "The time duration is about 31 days\n",
      "The number of VM types is 15\n"
     ]
    }
   ],
   "source": [
    "creation_num = 0\n",
    "deletion_num = 0\n",
    "for i in data[4]:\n",
    "    if i == \"0\":\n",
    "        creation_num += 1\n",
    "    if i == \"1\":\n",
    "        deletion_num += 1\n",
    "print(\"The number of creation requests is {}\".format(creation_num))\n",
    "print(\"The number of deletion requests is {}\".format(deletion_num))\n",
    "\n",
    "time = float(data[3][241743])\n",
    "second_each_day = 60*60*24\n",
    "print(\"The time duration is about {} days\".format(round(time/second_each_day),2))\n",
    "\n",
    "cpumem_types = 0\n",
    "cpumem_dict = dict()\n",
    "\n",
    "for i in range(1,len(data)):\n",
    "    if cpumem_dict.get(data[1][i]+'U'+data[2][i]+'G') is not None:\n",
    "        cpumem_dict[data[1][i]+'U'+data[2][i]+'G'] += 1\n",
    "    else:\n",
    "        cpumem_dict[data[1][i]+'U'+data[2][i]+'G'] = 0\n",
    "        cpumem_types += 1\n",
    "\n",
    "print('The number of VM types is {}'.format(cpumem_types))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the cpus of the datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 960x400 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpu_types = 0\n",
    "cpu_dict = dict()\n",
    "cpu = []\n",
    "for i in data[1][1:]:\n",
    "    if cpu_dict.get(i) is not None:\n",
    "        cpu_dict[i] += 1\n",
    "    else:\n",
    "        cpu_dict[i] = 0\n",
    "        cpu.append(int(i))\n",
    "        cpu_types += 1\n",
    "\n",
    "cpu.sort()\n",
    "num_request_cpu = [ cpu_dict[str(i)] for i in cpu]\n",
    "cpu_request_proportion = [ num_request_cpu[i]/np.array(num_request_cpu).sum() \\\n",
    "    for i in range(len(num_request_cpu))]\n",
    "\n",
    "fig,ax = plt.subplots(figsize=(12,5),dpi=80)\n",
    "ax.bar([str(i) for i in cpu],cpu_request_proportion ,tick_label=['{}U'.format(i) for i in cpu])\n",
    "ax.set_xlabel('flavor size')\n",
    "ax.set_ylabel('proportion')\n",
    "ax.set_title('CPU of VMs')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the mems of the datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 960x400 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "mem_types = 0\n",
    "mem_dict = dict()\n",
    "mem = []\n",
    "for i in data[2][1:]:\n",
    "    if mem_dict.get(i) is not None:\n",
    "        mem_dict[i] += 1\n",
    "    else:\n",
    "        mem_dict[i] = 0\n",
    "        mem.append(int(i))\n",
    "        mem_types += 1\n",
    "\n",
    "mem.sort()\n",
    "num_request_mem = [ mem_dict[str(i)] for i in mem]\n",
    "mem_request_proportion = [ num_request_mem[i]/np.array(num_request_mem).sum() \\\n",
    "    for i in range(len(num_request_mem))]\n",
    "\n",
    "fig,ax = plt.subplots(figsize=(12,5),dpi=80)\n",
    "ax.bar([str(i) for i in mem],mem_request_proportion ,tick_label=['{}G'.format(i) for i in mem])\n",
    "ax.set_xlabel('flavor size')\n",
    "ax.set_ylabel('proportion')\n",
    "ax.set_title('Memory of VMs')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the VM type of the datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'VM type')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 960x400 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpumem = ['1U1G','1U2G','1U4G','2U4G','2U8G','4U8G','4U16G','8U16G','8U32G',\\\n",
    "    '12U24G','16U32G','24U48G','32U64G','48U96G','64U128G',]\n",
    "\n",
    "num_request_cpumem = [ cpumem_dict[str(i)] for i in cpumem]\n",
    "cpumem_request_proportion = [ num_request_cpumem[i]/np.array(num_request_cpumem).sum() \\\n",
    "    for i in range(len(num_request_cpumem))]\n",
    "\n",
    "fig,ax = plt.subplots(figsize=(12,5),dpi=80)\n",
    "ax.bar([str(i) for i in cpumem],cpumem_request_proportion)\n",
    "ax.set_xlabel('flavor size')\n",
    "plt.xticks(rotation=90)\n",
    "ax.set_ylabel('proportion')\n",
    "ax.set_title('VM type')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualize the dynamic of virtual machine during the month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Alive VMs')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x560 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "alive_nums = []\n",
    "alive = 0\n",
    "time = [i for i in range(len(data))]\n",
    "\n",
    "for i in data[4]:\n",
    "    if i == \"0\":\n",
    "        alive += 1\n",
    "    if i == \"1\":\n",
    "        alive -= 1\n",
    "    alive_nums.append(alive if alive>0 else 0)\n",
    "\n",
    "fig,ax = plt.subplots(figsize=(8,7),dpi=80)\n",
    "ax.plot(time,alive_nums)\n",
    "ax.set_xlabel('Time')\n",
    "ax.set_ylabel('Numbers')\n",
    "ax.set_title('Alive VMs')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualize the allocated resources during the month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Allocated Resources')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x560 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "allocated_cpus = []\n",
    "allocated_mems = []\n",
    "cpu = 0\n",
    "mem = 0\n",
    "time = [i for i in range(1,len(data))]\n",
    "\n",
    "for i in range(1,len(data)):\n",
    "    if data[4][i] == \"0\":\n",
    "        cpu += float(data[1][i])\n",
    "        mem += float(data[2][i])\n",
    "    if data[4][i] ==\"1\":\n",
    "        cpu -= float(data[1][i])\n",
    "        mem -= float(data[2][i])\n",
    "    \n",
    "    allocated_cpus.append(cpu if cpu>0 else 0)\n",
    "    allocated_mems.append(mem if mem>0 else 0)\n",
    "\n",
    "\n",
    "fig,ax = plt.subplots(figsize=(8,7),dpi=80)\n",
    "ax.plot(time,allocated_cpus)\n",
    "ax.plot(time,allocated_mems)\n",
    "ax.set_xlabel('Time')\n",
    "ax.set_ylabel('Cores/GBs')\n",
    "ax.set_title('Allocated Resources')\n"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "0e41ee3aba04290044decc481c1d0bfb2c73cbe185a5a74220f0bd90fe2c6273"
  },
  "kernelspec": {
   "display_name": "Python 3.6.13 64-bit ('chc': conda)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.13"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
